// Copyright 2011, Vanya Davidenko.
// Кодировка файла: UTF-8. 
package info.iu9.red;



abstract class AbstractRegularStateVisitor implements StateVisitor {
  protected abstract void incIf(final boolean condition);


  protected void setStringIterator(final StringIterator string_iterator) {
    string_iterator_ = string_iterator;
  }


  public void visit(final DotState s) {
    incIf(s.check(string_iterator_));
  }
  public void visit(final DotAllState s) {
    incIf(s.check(string_iterator_));
  }
  public void visit(final CharacterState s) {
    incIf(s.check(string_iterator_));
  }
  public void visit(final CaseCharacterState s) {
    incIf(s.check(string_iterator_));
  }
  public void visit(final CharacterGroupState s) {
    incIf(s.check(string_iterator_));
  }
  public void visit(final CaseCharacterGroupState s){
    incIf(s.check(string_iterator_));
  }


  public void visit(final MatchState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final JumpState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final ForkState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final BeginSaveState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final EndSaveState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final BeginningAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final EndOfStringAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final EndingAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final ReverseEndingAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final StringBeginningAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final StringEndingAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final MultiLineBeginningAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final MultiLineEndingAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final WordBoundaryAnchorState s) {
    throw new UnsupportedOperationException();
  }
  public void visit(final InvertedWordBoundaryAnchorState s) {
    throw new UnsupportedOperationException();
  }


  private StringIterator string_iterator_;
}
